{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Examples and Exercises from Think Stats, 2nd Edition\n",
    "\n",
    "http://thinkstats2.com\n",
    "\n",
    "Copyright 2016 Allen B. Downey\n",
    "\n",
    "MIT License: https://opensource.org/licenses/MIT\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from __future__ import print_function, division\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "import random\n",
    "\n",
    "import thinkstats2\n",
    "import thinkplot"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Analytic methods\n",
    "\n",
    "If we know the parameters of the sampling distribution, we can compute confidence intervals and p-values analytically, which is computationally faster than resampling."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import scipy.stats\n",
    "\n",
    "def EvalNormalCdfInverse(p, mu=0, sigma=1):\n",
    "    return scipy.stats.norm.ppf(p, loc=mu, scale=sigma)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here's the confidence interval for the estimated mean."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "85.887865932621324"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "EvalNormalCdfInverse(0.05, mu=90, sigma=2.5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "94.112134067378676"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "EvalNormalCdfInverse(0.95, mu=90, sigma=2.5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`normal.py` provides a `Normal` class that encapsulates what we know about arithmetic operations on normal distributions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Normal(90, 56.25)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from normal import Normal\n",
    "\n",
    "dist = Normal(90, 7.5**2)\n",
    "dist"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can use it to compute the sampling distribution of the mean."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2.5"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dist_xbar = dist.Sum(9) / 9\n",
    "dist_xbar.sigma"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And then compute a confidence interval."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(85.887865932621324, 94.112134067378676)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dist_xbar.Percentile(5), dist_xbar.Percentile(95)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Central Limit Theorem\n",
    "\n",
    "If you add up independent variates from a distribution with finite mean and variance, the sum converges on a normal distribution.\n",
    "\n",
    "The following function generates samples with difference sizes from an exponential distribution."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def MakeExpoSamples(beta=2.0, iters=1000):\n",
    "    \"\"\"Generates samples from an exponential distribution.\n",
    "\n",
    "    beta: parameter\n",
    "    iters: number of samples to generate for each size\n",
    "\n",
    "    returns: list of samples\n",
    "    \"\"\"\n",
    "    samples = []\n",
    "    for n in [1, 10, 100]:\n",
    "        sample = [np.sum(np.random.exponential(beta, n))\n",
    "                  for _ in range(iters)]\n",
    "        samples.append((n, sample))\n",
    "    return samples"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This function generates normal probability plots for samples with various sizes."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def NormalPlotSamples(samples, plot=1, ylabel=''):\n",
    "    \"\"\"Makes normal probability plots for samples.\n",
    "\n",
    "    samples: list of samples\n",
    "    label: string\n",
    "    \"\"\"\n",
    "    for n, sample in samples:\n",
    "        thinkplot.SubPlot(plot)\n",
    "        thinkstats2.NormalProbabilityPlot(sample)\n",
    "\n",
    "        thinkplot.Config(title='n=%d' % n,\n",
    "                         legend=False,\n",
    "                         xticks=[],\n",
    "                         yticks=[],\n",
    "                         xlabel='random normal variate',\n",
    "                         ylabel=ylabel)\n",
    "        plot += 1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The following plot shows how the sum of exponential variates converges to normal as sample size increases."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nqOMAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7ff17221ced0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "thinkplot.PrePlot(num=3, rows=2, cols=3)\n",
    "samples = MakeExpoSamples()\n",
    "NormalPlotSamples(samples, plot=1,\n",
    "                  ylabel='sum of expo values')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The lognormal distribution has higher variance, so it requires a larger sample size before it converges to normal."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def MakeLognormalSamples(mu=1.0, sigma=1.0, iters=1000):\n",
    "    \"\"\"Generates samples from a lognormal distribution.\n",
    "\n",
    "    mu: parmeter\n",
    "    sigma: parameter\n",
    "    iters: number of samples to generate for each size\n",
    "\n",
    "    returns: list of samples\n",
    "    \"\"\"\n",
    "    samples = []\n",
    "    for n in [1, 10, 100]:\n",
    "        sample = [np.sum(np.random.lognormal(mu, sigma, n))\n",
    "                  for _ in range(iters)]\n",
    "        samples.append((n, sample))\n",
    "    return samples"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\ndp///pYBx/kJM/tnM/s3f5s/7lr3Mb/9R83sj7qWF83sT8zsIUlv94//D83sIf/ne5OZfc3MzpvZ\nL/qfSZrZf5jZ9/yf8Y59vr9Pm9knu95/yv+ZB7Yz4Pu+pvtKoZl9ycwe8L+zn9vah6S4mf2Pmf29\nv+zjZvbf/rLPGM98B/ZErCPWAacBsY5Yhy7OOaZjnCSdldSU9NauZTn/NSDpHkk3+e8vSvqkP//L\nku705/9M0u/68x+U1JI0KenNkh6RFJOUlPS/km7291mXdKP/me9J+ht//g5JXxpwnJ+Q9IyklKSo\npOckXSVpXtLz/v4Cku6WdIf/GU/Sh7vauCjpF/z5P5X0sKSEpGlJC/7yoKSUPz8l6XzX5zcGHNcb\nJX2r6/3j/nEFBrWzy/d9QdLkju8+JukxSRM79y3pBklflhT03/+lpJ857v9LTEyjPBHriHVMTKdh\nItYR65i2p5AwCp53zj3Q9f6jZvbzkkKS5iTdqHYwkaQv+a8PSvoJf/62rXnn3L+a2Zq//J1qB5eq\nJJnZFyX9iKSvSLronHvC3+5xtQOJ1P4lPLvLcd7tnCv5bT3ubzct6R7nl3OY2V3+8XxZ7cD4xR1t\nfKVrP0nnXFlS2cyq1q6nL0v6tJndpnZAO2Nms865pUEH5Jx72MxmzGxO0qykVefcy2YWGtSO/7Gd\n33f3VatfN7MP+fNXS7pe0v07trld7WD/gH/FKyZpcZfvDMA2Yh2xDjgNiHXEOkgkmiNic2vGzK6T\n9JuS3uKc2zCzz6r9H35LzX9tafd/v4Pc7q91zXtd77092t35ma3tdttfxfmXhga00b3P7vY+rnaQ\ne5NzzjOzi+r9+Qf5gqSfUjt4/6O/bK92Nnd83kmSmf2opPdIeptzrmZm9+yyb5P0Oefc7+xzXAB6\nEeuIdcBpQKwj1kH00RwV3b/QGUklSUUzy0v6wAE+/59q/wLKzD4gKecvv1fSh8wsZmZJta+O3Ttg\nn3sdz37ul3SbtfsTBCV9TNK3XkE7W9tmJS35QeTd6r0Kt1t7/yTpo5I+rHZwOmw73fte84PRDZJu\n7dqm7v98Uvsq4U+a2YwkmdmEmV17oJ8SON2IdcQ64DQg1hHrIO5ojorO1SHn3KNm9rCkJyW9KOm+\nQdvt8AeS/sHMPirpO5Je8Nt6yMz+TtID/mfvdM49YmZnd7S1s93d9tO3jXNuwcx+S9tB6F+cc199\nBe1urbtL0lfM7BG1+xg8ud/nnXNPmFla0kvOua1Sh8O0s/X+a5J+yS8feUrSf3Vtc6ekx8zsQefc\nz5rZ70n6hpkF1O4X8Svyv3cAuyLWEeuA04BYR6yDGN4EAAAAADBklM4CAAAAAIaKRBMAAAAAMFQk\nmgAAAACAoSLRBAAAAAAMFYkmAAAAAGCoSDQBAAAAAENFogkAAAAAGCoSTQAAAADAUP0/eQNgfu73\nyh0AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7ff1a0327350>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "thinkplot.PrePlot(num=3, rows=2, cols=3)\n",
    "samples = MakeLognormalSamples()\n",
    "NormalPlotSamples(samples, ylabel='sum of lognormal values')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The Pareto distribution has infinite variance, and sometimes infinite mean, depending on the parameters.  It violates the requirements of the CLT and does not generally converge to normal."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def MakeParetoSamples(alpha=1.0, iters=1000):\n",
    "    \"\"\"Generates samples from a Pareto distribution.\n",
    "\n",
    "    alpha: parameter\n",
    "    iters: number of samples to generate for each size\n",
    "\n",
    "    returns: list of samples\n",
    "    \"\"\"\n",
    "    samples = []\n",
    "\n",
    "    for n in [1, 10, 100]:\n",
    "        sample = [np.sum(np.random.pareto(alpha, n))\n",
    "                  for _ in range(iters)]\n",
    "        samples.append((n, sample))\n",
    "    return samples"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nokg0AQAAAACJyo7yzc1slG8PAFOBWAdgNyDWAeiHOecmPQYAAAAAQIpQOgsAAAAASBSJJgAAAAAg\nUSSaAAAAAIBEkWimkJkdN7P9kx5H0sxsdUTv+6dmtqfHc355FJ8NYHDEur7fl1gHzCBiXd/vS6yb\nEjQDmjJmZm7I/1PM7FFJL3POnU1oWEMzM885Fwz5HivOua6BY4D3jHW8zWzVObeU5GcDuxmxrut7\nEOuAlCDWdX0PYl3KMaM5YWZ21My+Y2a/Z2YPSLrczP6Tmd1pZg+Y2fsizz1uZv/KzO4xs/vM7KrG\n4/vN7PON539YkkVe8+7G4/eb2T+NfOZDZvYRM3vYzP6bmb3azL7SuP+yHcb5DjP7hJnd0XjOr0d+\n9rbG+99vZv828viqmf2GmX1T0g80xv9vzOybjd/vJjP7nJk9YmY/33jNgpl9wczubvyOr+9x/H7N\nzN4Zuf++xu+84/vscLyPRK8UmtmnzOyuxjH7mfAzJM2Z2TfM7Pcbj73dzL7eeOxDRs93oCtiHbEO\n2A2IdcQ6RDjn+Jrgl6SjkmqSXh55bG/juyfpS5Kua9w/Lumdjdv/h6TbGrd/U9J7Grf/riRf0n5J\nL5F0n6SipAVJD0q6ofGZFUnXNF5zt6Tfadx+vaRP7TDOd0j6G0mLkgqSHpN0maRLJT3e+DxP0hcl\nvb7xmkDSGyPvcVzSzzVuf1DSvZLmJR2QdLLxeEbSYuP2RZIeibx+ZYdx3SjpzyP3v9UYl7fT+3Q4\n3o9K2t927IuSHpC0r/2zJV0t6dOSMo37/1HSP5z0vyW++JrmL2IdsY4vvnbDF7GOWMfX1ldWmAaP\nO+fuitx/q5n9rKSspEOSrlE9mEjSpxrf75H0hsbtV4W3nXO3m9m5xuM3qx5cSpJkZp+U9EpJn5F0\n3Dn37cbzvqV6IJHqf4RHO4zzi865tcZ7favxvAOSvuQa5Rxm9geN8Xxa9cD4ybb3+EzkcxaccxuS\nNsysZPV6+g1Jv2Zmr1I9oB02s4udc6d2GpBz7l4zO2hmhyRdLOmsc+5pM8vu9D6Nl7Uf7+hVq39m\nZn+/cftySS+UdGfbc16terC/q3HFqyjp2Q7HDMAWYh2xDtgNiHXEOkgkmlNiPbxhZs+X9IuSXuqc\nWzGzj6j+Dz5Ubnz31fn/vzjT/eXI7SByP+jyvu2vCZ/X6fM2XePS0A7vEf3M6Pu9XfUgd5NzLjCz\n42r9/Xfyx5JuVT14/2HjsW7vs972eidJZvZDkn5U0vc758pm9qUOn22Sfs8596s9xgWgFbGOWAfs\nBsQ6Yh3EGs1pEf2D3iNpTdKqmV0i6ZYYr/9L1f8AZWa3SNrbePzLkv6+mRXNbEH1q2Nf3uEzu42n\nlzslvcrq6wkykt4m6c8HeJ/wucuSTjWCyI+o9Spcp/f7I0lvlfRG1YNTv+8T/exzjWB0taRXRJ5T\nafx+Uv0q4ZvM7KAkmdk+M3terN8S2N2IdcQ6YDcg1hHrIGY0p0Xz6pBz7n4zu1fSQ5KelPSVnZ7X\n5v2SPmZmb5X0VUlPNN7rm2b2XyXd1Xjtbc65+8zsaNt7tb9vp8/Z9hzn3Ekz+5faCkKfdc796QDv\nG/7sDyR9xszuU32NwUO9Xu+c+7aZLUl6yjkXljr08z7h/c9J+oVG+cjDkr4Wec5tkh4ws3uccz9l\nZu+V9D/NzFN9XcS71DjuADoi1hHrgN2AWEesg9jeBAAAAACQMEpnAQAAAACJItEEAAAAACSKRBMA\nAAAAkCgSTQAAAABAokg0AQAAAACJItEEAAAAACSKRBMAAAAAkCgSTQAAAABAov5/RuS1pC3Pa7wA\nAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7ff16f806d50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "thinkplot.PrePlot(num=3, rows=2, cols=3)\n",
    "samples = MakeParetoSamples()\n",
    "NormalPlotSamples(samples, ylabel='sum of Pareto values')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If the random variates are correlated, that also violates the CLT, so the sums don't generally converge.\n",
    "\n",
    "To generate correlated values, we generate correlated normal values and then transform to whatever distribution we want."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def GenerateCorrelated(rho, n):\n",
    "    \"\"\"Generates a sequence of correlated values from a standard normal dist.\n",
    "    \n",
    "    rho: coefficient of correlation\n",
    "    n: length of sequence\n",
    "\n",
    "    returns: iterator\n",
    "    \"\"\"\n",
    "    x = random.gauss(0, 1)\n",
    "    yield x\n",
    "\n",
    "    sigma = np.sqrt(1 - rho**2)\n",
    "    for _ in range(n-1):\n",
    "        x = random.gauss(x * rho, sigma)\n",
    "        yield x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def GenerateExpoCorrelated(rho, n):\n",
    "    \"\"\"Generates a sequence of correlated values from an exponential dist.\n",
    "\n",
    "    rho: coefficient of correlation\n",
    "    n: length of sequence\n",
    "\n",
    "    returns: NumPy array\n",
    "    \"\"\"\n",
    "    normal = list(GenerateCorrelated(rho, n))\n",
    "    uniform = scipy.stats.norm.cdf(normal)\n",
    "    expo = scipy.stats.expon.ppf(uniform)\n",
    "    return expo"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def MakeCorrelatedSamples(rho=0.9, iters=1000):\n",
    "    \"\"\"Generates samples from a correlated exponential distribution.\n",
    "\n",
    "    rho: correlation\n",
    "    iters: number of samples to generate for each size\n",
    "\n",
    "    returns: list of samples\n",
    "    \"\"\"    \n",
    "    samples = []\n",
    "    for n in [1, 10, 100]:\n",
    "        sample = [np.sum(GenerateExpoCorrelated(rho, n))\n",
    "                  for _ in range(iters)]\n",
    "        samples.append((n, sample))\n",
    "    return samples\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nIiIiIiKaqP8Pbgi/eiAgN2AAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7ff16f520890>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "thinkplot.PrePlot(num=3, rows=2, cols=3)\n",
    "samples = MakeCorrelatedSamples()\n",
    "NormalPlotSamples(samples, ylabel='sum of correlated exponential values')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Difference in means\n",
    "\n",
    "Let's use analytic methods to compute a CI and p-value for an observed difference in means.\n",
    "\n",
    "The distribution of pregnancy length is not normal, but it has finite mean and variance, so the sum (or mean) of a few thousand samples is very close to normal."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.07803726677754952"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import first\n",
    "\n",
    "live, firsts, others = first.MakeFrames()\n",
    "delta = firsts.prglngth.mean() - others.prglngth.mean()\n",
    "delta"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The following function computes the sampling distribution of the mean for a set of values and a given sample size."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def SamplingDistMean(data, n):\n",
    "    \"\"\"Computes the sampling distribution of the mean.\n",
    "\n",
    "    data: sequence of values representing the population\n",
    "    n: sample size\n",
    "\n",
    "    returns: Normal object\n",
    "    \"\"\"\n",
    "    mean, var = data.mean(), data.var()\n",
    "    dist = Normal(mean, var)\n",
    "    return dist.Sum(n) / n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here are the sampling distributions for the means of the two groups under the null hypothesis."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "dist1 = SamplingDistMean(live.prglngth, len(firsts))\n",
    "dist2 = SamplingDistMean(live.prglngth, len(others))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And the sampling distribution for the difference in means."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Normal(90, 56.25)"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dist_diff = dist1 - dist2\n",
    "dist"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Under the null hypothesis, here's the chance of exceeding the observed difference."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.083770704255438311"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "1 - dist_diff.Prob(delta)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And the chance of falling below the negated difference."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.083770704255438255"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dist_diff.Prob(-delta)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The sum of these probabilities is the two-sided p-value."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Testing a correlation\n",
    "\n",
    "Under the null hypothesis (that there is no correlation), the sampling distribution of the observed correlation (suitably transformed) is a \"Student t\" distribution."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def StudentCdf(n):\n",
    "    \"\"\"Computes the CDF correlations from uncorrelated variables.\n",
    "\n",
    "    n: sample size\n",
    "\n",
    "    returns: Cdf\n",
    "    \"\"\"\n",
    "    ts = np.linspace(-3, 3, 101)\n",
    "    ps = scipy.stats.t.cdf(ts, df=n-2)\n",
    "    rs = ts / np.sqrt(n - 2 + ts**2)\n",
    "    return thinkstats2.Cdf(rs, ps)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The following is a `HypothesisTest` that uses permutation to estimate the sampling distribution of a correlation. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import hypothesis\n",
    "\n",
    "class CorrelationPermute(hypothesis.CorrelationPermute):\n",
    "    \"\"\"Tests correlations by permutation.\"\"\"\n",
    "\n",
    "    def TestStatistic(self, data):\n",
    "        \"\"\"Computes the test statistic.\n",
    "\n",
    "        data: tuple of xs and ys\n",
    "        \"\"\"\n",
    "        xs, ys = data\n",
    "        return np.corrcoef(xs, ys)[0][1]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we can estimate the sampling distribution by permutation and compare it to the Student t distribution."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def ResampleCorrelations(live):\n",
    "    \"\"\"Tests the correlation between birth weight and mother's age.\n",
    "\n",
    "    live: DataFrame for live births\n",
    "\n",
    "    returns: sample size, observed correlation, CDF of resampled correlations\n",
    "    \"\"\"\n",
    "    live2 = live.dropna(subset=['agepreg', 'totalwgt_lb'])\n",
    "    data = live2.agepreg.values, live2.totalwgt_lb.values\n",
    "    ht = CorrelationPermute(data)\n",
    "    p_value = ht.PValue()\n",
    "    return len(live2), ht.actual, ht.test_cdf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7ff16f0985d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "n, r, cdf = ResampleCorrelations(live)\n",
    "\n",
    "model = StudentCdf(n)\n",
    "thinkplot.Plot(model.xs, model.ps, color='gray',\n",
    "               alpha=0.5, label='Student t')\n",
    "thinkplot.Cdf(cdf, label='sample')\n",
    "\n",
    "thinkplot.Config(xlabel='correlation',\n",
    "                 ylabel='CDF',\n",
    "                 legend=True, loc='lower right')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "That confirms the analytic result.  Now we can use the CDF of the Student t distribution to compute a p-value."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.0688339703541 2.86146661921e-11\n"
     ]
    }
   ],
   "source": [
    "t = r * np.sqrt((n-2) / (1-r**2))\n",
    "p_value = 1 - scipy.stats.t.cdf(t, df=n-2)\n",
    "print(r, p_value)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##  Chi-squared test\n",
    "\n",
    "The reason the chi-squared statistic is useful is that we can compute its distribution under the null hypothesis analytically."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def ChiSquaredCdf(n):\n",
    "    \"\"\"Discrete approximation of the chi-squared CDF with df=n-1.\n",
    "\n",
    "    n: sample size\n",
    "    \n",
    "    returns: Cdf\n",
    "    \"\"\"\n",
    "    xs = np.linspace(0, 25, 101)\n",
    "    ps = scipy.stats.chi2.cdf(xs, df=n-1)\n",
    "    return thinkstats2.Cdf(xs, ps)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Again, we can confirm the analytic result by comparing values generated by simulation with the analytic distribution."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nSUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7ff16f5204d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data = [8, 9, 19, 5, 8, 11]\n",
    "dt = hypothesis.DiceChiTest(data)\n",
    "p_value = dt.PValue(iters=1000)\n",
    "n, chi2, cdf = len(data), dt.actual, dt.test_cdf\n",
    "\n",
    "model = ChiSquaredCdf(n)\n",
    "thinkplot.Plot(model.xs, model.ps, color='gray',\n",
    "                   alpha=0.3, label='chi squared')\n",
    "thinkplot.Cdf(cdf, label='sample')\n",
    "\n",
    "thinkplot.Config(xlabel='chi-squared statistic',\n",
    "                 ylabel='CDF',\n",
    "                 loc='lower right')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "And then we can use the analytic distribution to compute p-values."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "11.6 0.040699388504\n"
     ]
    }
   ],
   "source": [
    "p_value = 1 - scipy.stats.chi2.cdf(chi2, df=n-1)\n",
    "print(chi2, p_value)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## Exercises"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "**Exercise:**    In Section 5.4, we saw that the distribution of adult weights is approximately lognormal. One possible explanation is that the weight a person gains each year is proportional to their current weight. In that case, adult weight is the product of a large number of multiplicative factors:\n",
    "\n",
    "w = w0 f1 f2 ... fn  \n",
    "\n",
    "where w is adult weight, w0 is birth weight, and fi is the weight gain factor for year i.\n",
    "\n",
    "The log of a product is the sum of the logs of the factors:\n",
    "\n",
    "logw = logw0 + logf1 + logf2 + ... + logfn \n",
    "\n",
    "So by the Central Limit Theorem, the distribution of logw is approximately normal for large n, which implies that the distribution of w is lognormal.\n",
    "\n",
    "To model this phenomenon, choose a distribution for f that seems reasonable, then generate a sample of adult weights by choosing a random value from the distribution of birth weights, choosing a sequence of factors from the distribution of f, and computing the product. What value of n is needed to converge to a lognormal distribution?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# Solution\n",
    "\n",
    "def GenerateAdultWeight(birth_weights, n):\n",
    "    \"\"\"Generate a random adult weight by simulating annual gain.\n",
    "\n",
    "    birth_weights: sequence of birth weights in lbs\n",
    "    n: number of years to simulate\n",
    "\n",
    "    returns: adult weight in lbs\n",
    "    \"\"\"\n",
    "    bw = random.choice(birth_weights)\n",
    "    factors = np.random.normal(1.09, 0.03, n)\n",
    "    aw = bw * np.prod(factors)\n",
    "    return aw"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# Solution\n",
    "\n",
    "def PlotAdultWeights(live):\n",
    "    \"\"\"Makes a normal probability plot of log10 adult weight.\n",
    "\n",
    "    live: DataFrame of live births\n",
    "\n",
    "    \n",
    "    \"\"\"\n",
    "    birth_weights = live.totalwgt_lb.dropna().values\n",
    "    aws = [GenerateAdultWeight(birth_weights, 40) for _ in range(1000)]\n",
    "    log_aws = np.log10(aws)\n",
    "    thinkstats2.NormalProbabilityPlot(log_aws)\n",
    "    thinkplot.Config(xlabel='standard normal values',\n",
    "                     ylabel='adult weight (log10 lbs)',\n",
    "                     loc='lower right')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\njAH+P5nDQI1p21HpAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7ff16f4cf790>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "PlotAdultWeights(live)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# Solution\n",
    "\n",
    "# With n=40 the distribution is approximately lognormal except for the lowest weights.\n",
    "\n",
    "# Actual distribution might deviate from lognormal because it is\n",
    "# a mixture of people at different ages, or because annual weight\n",
    "# gains are correlated."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "**Exercise:** In Section 14.6 we used the Central Limit Theorem to find the sampling distribution of the difference in means, δ, under the null hypothesis that both samples are drawn from the same population.\n",
    "\n",
    "We can also use this distribution to find the standard error of the estimate and confidence intervals, but that would only be approximately correct. To be more precise, we should compute the sampling distribution of δ under the alternate hypothesis that the samples are drawn from different populations.\n",
    "\n",
    "Compute this distribution and use it to calculate the standard error and a 90% confidence interval for the difference in means."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.0780372667775\n"
     ]
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "# Here's the observed difference in means\n",
    "\n",
    "delta = firsts.prglngth.mean() - others.prglngth.mean()\n",
    "print(delta)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "null hypothesis Normal(0, 0.00319708)\n",
      "0.0837707042554 0.0837707042554\n"
     ]
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "# Under the null hypothesis, both sampling distributions are based\n",
    "# on all live births.\n",
    "\n",
    "dist1 = SamplingDistMean(live.prglngth, len(firsts))\n",
    "dist2 = SamplingDistMean(live.prglngth, len(others))\n",
    "dist_diff_null = dist1 - dist2\n",
    "print('null hypothesis', dist_diff_null)\n",
    "print(dist_diff_null.Prob(-delta), 1 - dist_diff_null.Prob(delta))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "estimated params Normal(0.0780373, 0.00321144)\n",
      "-0.0151758158699 0.171250349425\n"
     ]
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "# Under the alternate hypothesis, each sampling distribution is\n",
    "# based on the observed parameters.\n",
    "\n",
    "dist1 = SamplingDistMean(firsts.prglngth, len(firsts))\n",
    "dist2 = SamplingDistMean(others.prglngth, len(others))\n",
    "dist_diff_alt = dist1 - dist2\n",
    "print('estimated params', dist_diff_alt)\n",
    "print(dist_diff_alt.Percentile(5), dist_diff_alt.Percentile(95))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7ff16f0e4a10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "# The distribution of the difference under the null hypothesis is\n",
    "# centered at 0.\n",
    "\n",
    "# The distribution of the difference using the estimated parameters\n",
    "# is centered around the observed difference.\n",
    "\n",
    "thinkplot.PrePlot(2)\n",
    "thinkplot.Plot(dist_diff_null, label='null hypothesis')\n",
    "\n",
    "thinkplot.Plot(dist_diff_alt, label='estimated params')\n",
    "thinkplot.Config(xlabel='Difference in means (weeks)',\n",
    "               ylabel='CDF', loc='lower right')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Exercise:** [In a recent paper](http://ieeexplore.ieee.org/document/7044435/), Stein et al. investigate the effects of an intervention intended to mitigate gender-stereotypical task allocation within student engineering teams.\n",
    "\n",
    "Before and after the intervention, students responded to a survey that asked them to rate their contribution to each aspect of class projects on a 7-point scale.\n",
    "\n",
    "Before the intervention, male students reported higher scores for the programming aspect of the project than female students; on average men reported a score of 3.57 with standard error 0.28. Women reported 1.91, on average, with standard error 0.32.\n",
    "\n",
    "Compute the sampling distribution of the gender gap (the difference in means), and test whether it is statistically significant. Because you are given standard errors for the estimated means, you don’t need to know the sample size to figure out the sampling distributions.\n",
    "\n",
    "After the intervention, the gender gap was smaller: the average score for men was 3.44 (SE 0.16); the average score for women was 3.18 (SE 0.16). Again, compute the sampling distribution of the gender gap and test it.\n",
    "\n",
    "Finally, estimate the change in gender gap; what is the sampling distribution of this change, and is it statistically significant?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# Solution\n",
    "\n",
    "male_before = Normal(3.57, 0.28**2)\n",
    "male_after = Normal(3.44, 0.16**2)\n",
    "\n",
    "female_before = Normal(1.91, 0.32**2)\n",
    "female_after = Normal(3.18, 0.16**2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "mean, p-value -1.66 4.73095323208e-05\n",
      "CI -2.3594013558 -0.960598644196\n",
      "stderr 0.425205832509\n"
     ]
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "diff_before = female_before - male_before\n",
    "print('mean, p-value', diff_before.mu, 1-diff_before.Prob(0))\n",
    "print('CI', diff_before.Percentile(5), diff_before.Percentile(95))\n",
    "print('stderr', diff_before.sigma)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "mean, p-value -0.26 0.125267987207\n",
      "CI -0.632187889177 0.112187889177\n",
      "stderr 0.22627416998\n"
     ]
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "diff_after = female_after - male_after\n",
    "print('mean, p-value', diff_after.mu, 1-diff_after.Prob(0))\n",
    "print('CI', diff_after.Percentile(5), diff_after.Percentile(95))\n",
    "print('stderr', diff_after.sigma)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "mean, p-value 1.4 0.00182694836898\n",
      "CI 0.607733579312 2.19226642069\n",
      "stderr 0.481663783152\n"
     ]
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "diff = diff_after - diff_before\n",
    "print('mean, p-value', diff.mu, diff.Prob(0))\n",
    "print('CI', diff.Percentile(5), diff.Percentile(95))\n",
    "print('stderr', diff.sigma)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Solution\n",
    "\n",
    "# Conclusions:\n",
    "\n",
    "# 1) Gender gap before intervention was 1.66 points (p-value 5e-5)\n",
    "\n",
    "# 2) Genger gap after was 0.26 points (p-value 0.13, not significant)\n",
    "\n",
    "# 3) Change in gender gap was 1.4 points (p-value 0.002, significant)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
